package com.aloda.service;

import com.aloda.dto.TeamAddDTO;
import com.aloda.dto.TeamJoinDTO;
import com.aloda.dto.TeamPageByTagDTO;
import com.aloda.entity.Team;
import com.aloda.vo.TeamAddVO;
import com.aloda.vo.TeamInfoVO;
import com.aloda.vo.TeamJoinVO;
import com.aloda.vo.UserTeamPageVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author aloda
* @description 针对表【team(队伍表)】的数据库操作Service
* @createDate 2024-11-05 21:51:38
*/
public interface TeamService extends IService<Team> {

    /**
     * 增加队伍
     * @param teamAddDTO
     * @return
     */
    TeamAddVO addTeam(TeamAddDTO teamAddDTO);

    /**
     * 获取用户加入的队伍（滚动分页）
     * @param currentPage
     * @return
     */
    List<UserTeamPageVO> getUserTeam(Integer currentPage);

    /**
     * 获取用户创建的队伍
     * @param currentPage
     * @return
     */
    List<UserTeamPageVO> getUserCreatedTeam(Integer currentPage);

    /**
     * 获取队伍详细信息
     * @param id
     * @return
     */
    TeamInfoVO getTeamDetailInfo(Long id);

    /**
     * 根据标签查找队伍
     * @param teamPageByTagDTO
     * @return
     */
    List<UserTeamPageVO> getTeamByTags(TeamPageByTagDTO teamPageByTagDTO);

    /**
     * 用户加入队伍
     * @param teamJoinDTO
     * @return
     */
    TeamJoinVO userJoinTeam(TeamJoinDTO teamJoinDTO);
}
